import { reqGetSearchInfo } from "@/api";


//search模块小仓库
//state:仓库存储数据的地方
const state = {
    // searchInfo
    searchInfo: {}
};
//actions:处理action,派发数据请求,处理业务逻辑,也可以处理异步
const actions = {
    //获取searh模块数据


    async getSearchList(context, params = {}) {
        //params形参，当用户派发action的时候，第二个参数传递过来的，至少是一个空对象 箭头函数默认参数
        let result = await reqGetSearchInfo(params);
        // console.log(result);
        if (result.code == 200) {
            context.commit('SEARCHINFO', result.data)
        }
    }

};
//mutations:修改仓库数据的方法
const mutations = {
    SEARCHINFO(state, searchInfo) {
        state.searchInfo = searchInfo
    }
};

//类似于计算属性,简化仓库数据
const getters = {
    //getters主要是为了简化项目中的数据而生
    //可以在这两先把将来要在组件中使用的数据先简化以下,这样组件在获取数据时方便一些
    //这里传入的参数是当前仓库的state，不是大仓库的state
    goodsList(state) {
        //直接这样写存在一定的问题,如果网络延迟或者没网,服务器数据没返回,那么这里取到的是undefined,之后再进行遍历操作,就会报错;  解决方法是 或上 []
        return state.searchInfo.goodsList || [];
    },
    trademarkList(state) {
        return state.searchInfo.trademarkList || [];
    },
    attrsList(state) {
        return state.searchInfo.attrsList || [];
    }
};

//对外暴露小仓库
export default {
    state,
    actions,
    mutations,
    getters
}